/*============================================================================
 Project     : suppoker
 Module      : pierra.c
 Author      : Pierre-Arthur MATHIEU 93482
 Version     : 0.0
 Description : B1 dev project
 ============================================================================
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "card.h"
#include "checkCombinaison.h"


void requete(card deck[53], card hand[5]) //gestion des requete pour changer les cartes.
    {
    int testa=0,testb=0,testc=0,testd=0,teste=0;
    printMsg(3);
    scanf("%d %d %d %d %d", &testa,&testb,&testc,&testd,&teste);
    if (testa == 1)
        putCard(deck,hand,0,randomCard(1,53));
    if (testb == 1)
        putCard(deck,hand,1,randomCard(1,53));
    if (testc == 1)
        putCard(deck,hand,2,randomCard(1,53));
    if (testd == 1)
        putCard(deck,hand,3,randomCard(1,53));
    if (teste == 1)
        putCard(deck,hand,4,randomCard(1,53));
    }

int newManche(card deck[53], card hand[5], int pot) //gestion d'une manche
    {
    int askedBlind=0;
    int c=0;
    int gain=0;
    int combin[]={0,0,1,2,3,4,5,8,10,20};
    int combinaison;

    clearDeck (deck);
    for (c=0;c <= 4;c++) // mise à zéro de la main avec 5 cartes aléatoirement tirée
        {
        putCard (deck,hand,c,randomCard(1,53));
        }

/*
    hand[0].color=1;
    hand[0].value=1;
    hand[0].selected=1;

    hand[1].color=1;
    hand[1].value=1;
    hand[1].selected=1;

    hand[2].color=1;
    hand[2].value=12;
    hand[2].selected=1;

    hand[3].color=2;
    hand[3].value=12;
    hand[3].selected=1;

    hand[5].color=1;
    hand[5].value=10;
    hand[5].selected=1;
*/

    printf("votre cagnote est de %d",pot);
    printMsg(1);
    do // gestion de la mise, verification de : pas de mise négative et pas de jeu a crédit.
        {
        scanf("%d",&askedBlind);
        if (askedBlind>pot || askedBlind <= 0)
            {
            printMsg(2);
            }
        }
    while (askedBlind>pot || askedBlind <= 0);
    pot = pot-askedBlind;
    printMsg(4);
    printHand(hand);
    requete(deck,hand);
    printHand(hand);
    handSort(hand);
    combinaison = showCombinaison(hand);
    if (combinaison<1) // gestion des gains.
        gain = askedBlind*(combin[combinaison]);
    else
        gain = askedBlind*(combin[combinaison])+askedBlind;
    printComb(combinaison);
    printf("vous avez multiplié votre mise par %d ",combin[combinaison]);
    pot = pot + gain;
    return pot;
    }

int main(void)
    {
    int pot=0;
    int tryagain;

    srand(time(NULL)); // a ne pas oublier, initialisation de srand.

    card deck[53]; //on garde le 0 pour avoir des index logiques dans les cartes
    card hand[5];
    do // tant qu'on à de l'argent on joue, sinon on propose une autre partie.
        {
        pot=500;
        tryagain = 0;
        do
            {
            pot = newManche(deck,hand,pot);
            }
        while (pot>0 && pot!=0);
        printMsg(5);
        printMsg(6);
        scanf("%d",&tryagain);
        }
    while (tryagain==1);
    printMsg(7);
    return EXIT_SUCCESS;
}

